home *** CD-ROM | disk | FTP | other *** search
-
- $LIB ALL OFF
- $ERROR ALL OFF
-
- 'Declarations for PBTools
-
- PUBLIC Xpos%(), Ypos%(), WAttr%(), Xlen%(), Ylen%(), BAttr%(), ScrSav$(),_
- Brdr%(), Shad%(), Pntr%(), CurWin%, MaxWin%
-
- MaxWin%=20 'Defaults to 15, reset to 20 for demo.
-
- $LINK "WINDO.PBU"
- $LINK "SCRNIO.PBU"
- $LINK "DOSIO.PBU"
- $LINK "EMSIO.PBU"
- $LINK "TOOL.PBU"
-
- CALL InitPBScreen
-
- CALL Fill(1,1,25,80,178,23)
-
- CALL OpenWin(5,12,16,58,11,20,31,3,1,0)
- CALL WPrintC(1,"PBTools 2.0 ",0)
- CALL WPrintC(2,"Copyright (c) 1990 by Dave Navarro, Jr.",0)
- IF IsMouse% THEN Text$="Mouse" ELSE Text$="No Mouse"
- Text$=Text$+" detected"
- CALL WPrintC(4,Text$,0)
- IF CurDisplay%=0 THEN Mon$="MONOCHROME"
- IF CurDisplay%=1 THEN Mon$="CGA"
- IF CurDisplay%=2 THEN Mon$="EGA"
- IF CurDisplay%=3 THEN Mon$="MCGA"
- IF CurDisplay%=4 THEN Mon$="VGA"
- Text$=Mon$+" monitor is running in display mode"+STR$(VidMode%)
- CALL WPrintC(5,Text$,0)
- Text$="Video RAM segment located at "+HEX$(VidAddr%)+"H "
- CALL WPrintC(6,Text$,0)
- IF IsEMS% THEN Text$="EMS Version"+STR$(EMSVer%*.1) ELSE Text$="No EMS"
- Text$=Text$+" detected"
- IF IsEMS% THEN Text$=Text$+" with"+STR$(EMSFree%)+"K Bytes Free"
- CALL WPrintC(7,Text$,0)
- Text$="PBTools Demo is running on a"+STR$(CPU%)+" CPU"
- CALL WPrintC(8,Text$,0)
- Text$="System has"+STR$(INT(FRE(0)*.01))+"K Free RAM"
- CALL WPrintC(9,Text$,0)
- Text$="Current logged directory is "+CurDir$
- CALL WPrintC(10,Text$,0)
- Text$="Free space on drive "+CHR$(64+CurDrive%)+": is"
- Text$=Text$+STR$(INT(DrvSpace#/1024))+"K"
- CALL WPrintC(11,Text$,0)
- CALL WPrintC(14,"Press Any Key to Continue",0)
- I$=MouseKey$
- CALL CloseWin
- CALL OpenWin(2,20,4,45,2,30,31,3,0,0)
- CALL WPrintC(1,"PB Tools 2.0",0)
- CALL WPrintC(2,"Copyright (c) 1990 by Dave Navarro, Jr. ",0)
- CALL OpenWin(8,4,11,20,2,30,31,3,1,1)
- DIM Menu1$(1:9)
- Menu1$(1)=" Border Types "
- Menu1$(2)=" Moving Windows "
- Menu1$(3)=" Recoloring "
- Menu1$(4)=" Resizing "
- Menu1$(5)=" Scrolling "
- Menu1$(6)=" Shadows "
- Menu1$(7)=" Titles "
- Menu1$(8)=" Other Demos "
- Menu1$(9)=" Exit Demo "
- IF CurDisplay%=0 THEN Menu1$(3)=" --------------- "
- IF CurDisplay%=0 THEN Hilite%=Attr%(0,7) ELSE Hilite%=Attr%(1,7)
- XWin%=1:YWin%=2
-
- MainMenu:
- Choice%=Menu%(Menu1$(),1,9,Choice%,Hilite%)
- IF Choice%<1 THEN Choice%=9:GOTO MainMenu
- IF Choice%=1 THEN BorTypes
- IF Choice%=2 THEN MovingWin
- IF Choice%=3 THEN CycleColors
- IF Choice%=4 THEN Resize
- IF Choice%=5 THEN Scrolling
- IF Choice%=9 THEN SayBye
- GOTO MainMenu
-
- Scrolling:
- CALL OpenWin(20,18,4,50,2,30,31,3,0,0)
- CALL WPrintC(1,"Scroll the inside of a window any direction!",0)
- CALL WPrintC(2,"Pres ESC to end scrolling demo.",0)
- CALL OpenWin(8,28,10,50,2,30,31,3,0,0)
- CALL WPrintC(1,"Bouncing!!",0)
- Yscr%=1:XScr%=20:Xdir%=-1:Ydir%=1
- LoopForEver:
- IF Xdir%<0 THEN DECR XScr% ELSE INCR XScr%
- IF Ydir%<0 THEN DECR YScr% ELSE INCR YScr%
- IF XScr%<1 THEN Xdir%=1 ELSE IF XScr%>37 THEN Xdir%=-1
- IF YScr%<3 THEN YDir%=1 ELSE IF YScr%>8 THEN YDir%=-1
- IF Xdir%<0 THEN CALL ScrollWin(4) ELSE CALL ScrollWin(3)
- IF Ydir%<0 THEN CALL ScrollWin(2) ELSE CALL ScrollWin(1)
- FOR I%=-30000 TO 30000:NEXT I% ' Makes Demo Readable at 42 Mhz
- IF INKEY$<>CHR$(27) THEN LoopForEver
- CALL CloseWin
- CALL CloseWin
- GOTO MainMenu
-
- Resize:
- CALL OpenWin(20,18,4,50,2,30,31,3,0,0)
- CALL WPrintC(1,"Resizing windows is easy!!",0)
- CALL WPrintC(2,"Press ESC to end resizing demo.",0)
- CALL OpenWin(7,35,9,25,2,30,31,0,0,0)
- CALL WPrint(1,2,"Resizing!!!",0)
- Xlen%=25:Ylen%=9:Xdir%=-1:Ydir%=-1
- KeyLoop:
- IF Xdir%<0 THEN DECR Xlen% ELSE INCR Xlen%
- IF YDir%<0 THEN DECR Ylen% ELSE INCR Ylen%
- IF XLen%<15 THEN Xdir%=1 ELSE IF Xlen%>34 THEN Xdir%=-1
- IF Ylen%<3 THEN Ydir%=1 ELSE IF Ylen%>15 THEN Ydir%=-1
- IF Xdir%<0 THEN CALL ChangeWin(2) ELSE CALL ChangeWin(1)
- IF Ydir%<0 THEN CALL ChangeWin(4) ELSE CALL ChangeWin(3)
- IF INKEY$<>CHR$(27) THEN KeyLoop
- CALL CloseWin
- CALL CloseWin
- GOTO MainMenu
-
- MovingWin:
- CALL OpenWin(21,17,4,50,2,30,31,0,0,0)
- CALL WPrintC(1,"Use Arrow Keys to move Menu",0)
- CALL WPrintC(2,"Press ESC when your finished. ",0)
- CurWin%=2 'Be Careful when you change the current windo!
- CALL NoShadow
- EndlessLoop:
- I$=GetKey$
- IF I$=CHR$(27) THEN NoMove
- IF I$=CHR$(0)+CHR$(77) AND XWin%<57 THEN INCR Xwin%:CALL MoveWin(1)
- IF I$=CHR$(0)+CHR$(75) AND XWin%>1 THEN DECR XWin%:CALL MoveWin(2)
- IF I$=CHR$(0)+CHR$(80) AND YWin%<3 THEN INCR YWin%:CALL MoveWin(3)
- IF I$=CHR$(0)+CHR$(72) AND YWin%>1 THEN DECR YWin%:CALL MoveWin(4)
- GOTO EndlessLoop
- NoMove:
- CurWin%=3
- CALL CloseWin
- CALL AddShadow(3)
- GOTO MainMenu
-
- CycleColors:
- IF CurDisplay%=0 THEN MainMenu
- CurWin%=1
- FOR I%=128 TO 1 STEP -1
- CALL WinColor(I%)
- FOR T%=1 TO 32000:NEXT T%
- IF INKEY$<>"" THEN EXIT FOR
- NEXT I%
- CALL WinColor%(31)
- CurWin%=2
- GOTO MainMenu
-
- BorTypes:
- CALL OpenWin(7,4,17,76,2,30,31,3,0,0)
- IF CurDisplay%=0 THEN Normal%=Attr%(0,7) ELSE Normal%=Attr%(1,7)
- FOR I%=3 TO 0 STEP -1
- CALL OpenWin(8,14+(I%*15),5,13,I%,Normal%,Normal%,3,0,0)
- CALL Title(1,0,"[Frame"+STR$(I%)+"]")
- NEXT I%
- FOR I%=4 TO 0 STEP -1
- CALL OpenWin(11,8+(I%*14),5,13,I%+4,Attr%(14,4),Attr%(14,4),3,0,0)
- CALL Title(1,0,"[Frame"+STR$(I%+4)+"]")
- NEXT I%
- FOR I%=2 TO 0 STEP -1
- CALL OpenWin(14,19+(I%*17),5,14,I%+9,Attr%(15,5),Attr%(15,5),3,0,0)
- CALL Title(2,0,"[Frame"+STR$(I%+9)+"]")
- NEXT I%
- FOR I%=1 TO 0 STEP -1
- CALL OpenWin(17,28+(I%*17),5,14,I%+12,Attr%(8,7),Attr%(8,7),3,0,0)
- CALL Title(2,0,"[Frame"+STR$(I%+12)+"]")
- NEXT I%
- I$=MouseKey$
- FOR I%=0 TO 14
- CALL CloseWin
- NEXT I%
- GOTO MainMenu
-
- SayBye:
- CALL OpenWin(1,1,25,80,0,7,7,0,1,0)
- LOCATE 1,1
- PRINT "Thanks for giving PB Tools 2.0 a try!"
- END
-